
# 模块
"""
一.模块
1. 概念 ： 就是一个pyhon文件 ，在此文件中主要编写函数、类以及类中的方法 。
2. 作用 ： 在模块中定义成员 ，它就可以被其它模块所访问 。 必须需要先导入这个模块 。
3. 导入 ：
    (1). import 模块名
        优点： 一次性导入模块中的所有成员 ，使用起来比较方便 。
        缺点： 会占用更多内存资源
    (2). from 模块名 import 成员
        优点： 减少内存占用 ，用啥导入啥
        缺点 ：当进行引入大量的成员时，导入起来比较麻烦 。

4. 说明：
    1. 当使用import 导入时，使用成员时必须在成员前加上模块名 ，格式 ：模块名.成员
    2. 当导入的模块不在同一路径下 ，必须是从项目路径找 ，
    3. 若通过from 模块名 import 成员 方式导入 ，导入多个成员，中间用英文逗号隔开 ，加上每个成员名
    4. 也可以通过*代表所有成员直接导入

5. 导入逻辑
    1. 首先会从本模块所在路径下搜索 ，如找到了此模块 ，则进行导入
    2. 若在本路径下没有找到 ，则系统设置环境变量中找 ，若找到，也会导入 。
    3. 若上面的路径都未找到，则直接导入失败 ，报错 。

二. 包
1. 概念 ： 就是一个特殊的目录 ，在此目录下有一个__init__.py .
2. 作用 ：当模块足够多的时候 ，创建包是为了分类管理
3. 导入 ：和模块的导入方式是一样的。

三. 分类
包括 ：系统包(系统模块) ，第三方包(模块) ，自定义包(模块)
"""

# 通过第一种导入 ：
import demo06_func07_kb

print(demo06_func07_kb.add(120,160))

# 不同路径下的模块
import demo04_function.demo03_func04_option

print(demo04_function.demo03_func04_option.login('admin','567899'))


# 第二种方式 ：
from demo06_func07_kb import add

print(add(200,500))

from demo04_function.demo03_func04_option import login
print(login('admin','123456'))

import pymysql